package com.pn.taikao.service;

import com.pn.taikao.entity.Exam;

import java.util.List;

/**
 * 考试Service接口
 */
public interface ExamService {
    /**
     * 开始考试（创建考试记录）
     */
    Long startExam(Long paperId, Long studentId);
    
    /**
     * 根据ID查询考试
     */
    Exam getById(Long id);
    
    /**
     * 根据试卷ID和学生ID查询考试
     */
    Exam getByPaperIdAndStudentId(Long paperId, Long studentId);
    
    /**
     * 更新考试状态
     */
    void updateStatus(Long id, String status);
    
    /**
     * 结束考试
     */
    void finishExam(Long id);
    
    /**
     * 查询学生的所有考试
     */
    List<Exam> getByStudentId(Long studentId);
    
    /**
     * 根据课程ID查询学生的考试
     */
    List<Exam> getByStudentIdAndCourseId(Long studentId, Long courseId);
    
    /**
     * 根据试卷ID查询所有考试记录
     */
    List<Exam> getByPaperId(Long paperId);
    
    /**
     * 查询待判卷的考试列表（包含主观题且未完全判卷的考试）
     */
    List<Exam> getPendingGrading(Long teacherId);
    
    /**
     * 查询所有已完成的考试记录（管理员/教师查看）
     */
    List<Exam> getFinishedExams(Long teacherId);
}

